﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel;
using System.Runtime.Serialization;
using System.Diagnostics;
using System.Xml;

namespace Microsoft.MSE.Catalog.Contracts
{
    [DataContract(Namespace = SC.Namespace)]
    public enum EntityClass
    {
        [EnumMember]
        RuntimeServer = 0,
        [EnumMember]
        Endpoint = 2,
        [EnumMember]
        Operation = 4,
        [EnumMember]
        Binding = 6,
        [EnumMember]
        Channel = 7,
        [EnumMember]
        Policy = 8,
        [EnumMember]
        Schema = 9,
        [EnumMember]
        Property = 10,
        [EnumMember]
        OperationGroup = 11,
    }


    [DebuggerStepThrough]
    [DataContract(Namespace = SC.Namespace)]
    public class RuntimeServerList
    {
        List<RuntimeServerListElement> runtimeservers;

        [DataMember(IsRequired = false)]
        public List<RuntimeServerListElement> RuntimeServers
        {
            get { return runtimeservers; }
            set { runtimeservers = value; }
        }
    }

    [DebuggerStepThrough]
    [DataContract(Namespace = SC.Namespace)]
    public class RuntimeServerListElement
    {
        Guid id;

        [DataMember(IsRequired = true)]
        public Guid ID
        {
            get { return id; }
            set { id = value; }
        }
        string name;

        [DataMember(IsRequired = true)]
        public string Name
        {
            get { return name; }
            set { name = value; }
        }
        string description;

        [DataMember(IsRequired = false)]
        public string Description
        {
            get { return description; }
            set { description = value; }
        }
    }

    [DebuggerStepThrough]
    [DataContract(Namespace = SC.Namespace)]
    public class RuntimeServer
    {
        private Guid id;

        [DataMember(IsRequired = false)]
        public Guid ID
        {
            get { return id; }
            set { id = value; }
        }

        private string description;

        [DataMember(IsRequired = false)]
        public string Description
        {
            get { return description; }
            set { description = value; }
        }

        private string name;

        [DataMember(IsRequired = true)]
        public string Name
        {
            get { return name; }
            set { name = value; }
        }

        private string catalogURI;

        [DataMember(IsRequired = true)]
        public string CatalogURI
        {
            get { return catalogURI; }
            set { catalogURI = value; }
        }

        private MSEBinding catalogBinding;

        [DataMember(IsRequired = true)]
        public MSEBinding CatalogBinding
        {
            get { return catalogBinding; }
            set { catalogBinding = value; }
        }

        private string notificationURI;

        [DataMember(IsRequired = true)]
        public string NotificationURI
        {
            get { return notificationURI; }
            set { notificationURI = value; }
        }

        private MSEBinding notificationBinding;

        [DataMember(IsRequired = true)]
        public MSEBinding NotificationBinding
        {
            get { return notificationBinding; }
            set { notificationBinding = value; }
        }

        private string hostName;

        [DataMember(IsRequired = true)]
        public string HostName
        {
            get { return hostName; }
            set { hostName = value; }
        }

        private string brokerURI;

        [DataMember(IsRequired = true)]
        public string BrokerURI
        {
            get { return brokerURI; }
            set { brokerURI = value; }
        }

        private MSEBinding brokerBinding;

        [DataMember(IsRequired = true)]
        public MSEBinding BrokerBinding
        {
            get { return brokerBinding; }
            set { brokerBinding = value; }
        }

        private string listenerURI;

        [DataMember(IsRequired = true)]
        public string ListenerURI
        {
            get { return listenerURI; }
            set { listenerURI = value; }
        }

        private MSEBinding listenerBinding;

        [DataMember(IsRequired = true)]
        public MSEBinding ListenerBinding
        {
            get { return listenerBinding; }
            set { listenerBinding = value; }
        }

        private List<Endpoint> endpoints;

        [DataMember(IsRequired = false)]
        public List<Endpoint> Endpoints
        {
            get { return endpoints; }
            set { endpoints = value; }
        }
    }

    [DebuggerStepThrough]
    [DataContract(Namespace = SC.Namespace)]
    public class MessengerList
    {
        List<MessengerListElement> messengers;

        [DataMember(IsRequired = false)]
        public List<MessengerListElement> Messengers
        {
            get { return messengers; }
            set { messengers = value; }
        }
    }

    [DebuggerStepThrough]
    [DataContract(Namespace = SC.Namespace)]
    public class MessengerListElement
    {
        Guid id;

        [DataMember(IsRequired = false)]
        public Guid ID
        {
            get { return id; }
            set { id = value; }
        }
        string name;

        [DataMember(IsRequired = true)]
        public string Name
        {
            get { return name; }
            set { name = value; }
        }
        string description;

        [DataMember(IsRequired = false)]
        public string Description
        {
            get { return description; }
            set { description = value; }
        }
    }

    [DebuggerStepThrough]
    [DataContract(Namespace = SC.Namespace)]
    public class Messenger
    {
        Guid id;

        [DataMember(IsRequired = false)]
        public Guid ID
        {
            get { return id; }
            set { id = value; }
        }
        string name;

        [DataMember(IsRequired = true)]
        public string Name
        {
            get { return name; }
            set { name = value; }
        }
        XmlElement configuration;

        [DataMember(IsRequired = false)]
        public XmlElement Configuration
        {
            get { return configuration; }
            set { configuration = value; }
        }
        string description;

        [DataMember(IsRequired = false)]
        public string Description
        {
            get { return description; }
            set { description = value; }
        }

        List<Endpoint> endpoints;

        [DataMember(IsRequired = false)]
        public List<Endpoint> Endpoints
        {
            get { return endpoints; }
            set { endpoints = value; }
        }

    }

    [DebuggerStepThrough]
    [DataContract(Namespace = SC.Namespace)]
    public class EndpointList
    {
        List<EndpointListElement> endpoints;

        [DataMember(IsRequired = true)]
        public List<EndpointListElement> Endpoints
        {
            get { return endpoints; }
            set { endpoints = value; }
        }
    }

    [DebuggerStepThrough]
    [DataContract(Namespace = SC.Namespace)]
    public class EndpointListElement
    {
        Guid id;

        [DataMember(IsRequired = true)]
        public Guid ID
        {
            get { return id; }
            set { id = value; }
        }
        private Int32 port;

        [DataMember(IsRequired = true)]
        public Int32 Port
        {
            get { return port; }
            set { port = value; }
        }

        string uri;

        [DataMember(IsRequired = true)]
        public string URI
        {
            get { return uri; }
            set { uri = value; }
        }
        string description;

        [DataMember(IsRequired = false)]
        public string Description
        {
            get { return description; }
            set { description = value; }
        }
    }

    [DebuggerStepThrough]
    [DataContract(Namespace = SC.Namespace)]
    public class Endpoint
    {
        private Guid id;

        [DataMember(IsRequired = false)]
        public Guid ID
        {
            get { return id; }
            set { id = value; }
        }
        private string address;

        [DataMember(IsRequired = true)]
        public string Address
        {
            get { return address; }
            set { address = value; }
        }

        private string path;

        [DataMember(IsRequired = true)]
        public string Path
        {
            get { return path; }
            set { path = value; }
        }

        private Int32 port;

        [DataMember(IsRequired = true)]
        public Int32 Port
        {
            get { return port; }
            set { port = value; }
        }

        private MSEBinding binding;

        [DataMember(IsRequired = true)]
        public MSEBinding Binding
        {
            get { return binding; }
            set { binding = value; }
        }
        private Policy policy;

        [DataMember(IsRequired = false)]
        public Policy Policy
        {
            get { return policy; }
            set { policy = value; }
        }

        private XmlElement wsdl;

        [DataMember(IsRequired = false)]
        public XmlElement WSDL
        {
            get { return wsdl; }
            set { wsdl = value; }
        }

        XmlElement configuration;

        [DataMember(IsRequired = false)]
        public XmlElement Configuration
        {
            get { return configuration; }
            set { configuration = value; }
        }

        string description;

        [DataMember(IsRequired = false)]
        public string Description
        {
            get { return description; }
            set { description = value; }
        }

        string namespaceURI;

        [DataMember(IsRequired = true)]
        public string NamespaceURI
        {
            get { return namespaceURI; }
            set { namespaceURI = value; }
        }

        string serviceName;

        [DataMember(IsRequired = false)]
        public string ServiceName
        {
            get { return serviceName; }
            set { serviceName = value; }
        }

        

        private bool testCallsAccepted;

        [DataMember(IsRequired = false)]
        public bool TestCallsAccepted
        {
            get { return testCallsAccepted; }
            set { testCallsAccepted = value; }
        }

        private bool autoOperationPubUpdate;

        [DataMember(IsRequired = false)]
        public bool AutoOperationPubUpdate
        {
            get { return autoOperationPubUpdate; }
            set { autoOperationPubUpdate = value; }
        }

        private bool autoOperationActivationUpdate;

        [DataMember(IsRequired = false)]
        public bool AutoOperationActivationUpdate
        {
            get { return autoOperationActivationUpdate; }
            set { autoOperationActivationUpdate = value; }
        }

        private OperationVersionList assocOpVersionsList;

        [DataMember(IsRequired = false)]
        public OperationVersionList AssocOpVersionsList
        {
            get { return assocOpVersionsList; }
            set { assocOpVersionsList = value; }
        }

        private OperationVersionList pubOpVersionsList;

        [DataMember(IsRequired = false)]
        public OperationVersionList PubOpVersionsList
        {
            get { return pubOpVersionsList; }
            set { pubOpVersionsList = value; }
        }

        private List<EndpointAssociatedUddi> uddiAssociations;

        [DataMember(IsRequired = false)]
        public List<EndpointAssociatedUddi> UddiAssociations
        {
            get { return uddiAssociations; }
            set { uddiAssociations = value; }
        }
    }

    [DebuggerStepThrough]
    [DataContract(Namespace = SC.Namespace)]
    public class ServiceDescription
    {
        private Guid id;

        [DataMember(IsRequired = false)]
        public Guid ID
        {
            get { return id; }
            set { id = value; }
        }
        private string namespaceURI;

        [DataMember(IsRequired = true)]
        public string NamespaceURI
        {
            get { return namespaceURI; }
            set { namespaceURI = value; }
        }
        private string name;

        [DataMember(IsRequired = true)]
        public string Name
        {
            get { return name; }
            set { name = value; }
        }
        private string description;

        [DataMember(IsRequired = false)]
        public string Description
        {
            get { return description; }
            set { description = value; }
        }

        private Policy policy;

        [DataMember(IsRequired = false)]
        public Policy Policy
        {
            get { return policy; }
            set { policy = value; }
        }
        private List<Operation> operations;

        [DataMember(IsRequired = false)]
        public List<Operation> Operations
        {
            get { return operations; }
            set { operations = value; }
        }

        private EndpointList endpointList;

        [DataMember(IsRequired = false)]
        public EndpointList EndpointList
        {
            get { return endpointList; }
            set { endpointList = value; }
        }


    }

    [DebuggerStepThrough]
    [DataContract(Namespace = SC.Namespace)]
    public class OperationList
    {
        List<OperationListElement> operations;

        [DataMember(IsRequired = false)]
        public List<OperationListElement> Operations
        {
            get { return operations; }
            set { operations = value; }
        }
    }

    [DebuggerStepThrough]
    [DataContract(Namespace = SC.Namespace)]
    public class OperationListElement
    {
        Guid id;

        [DataMember(IsRequired = true)]
        public Guid ID
        {
            get { return id; }
            set { id = value; }
        }
        string name;

        [DataMember(IsRequired = true)]
        public string Name
        {
            get { return name; }
            set { name = value; }
        }
        string description;

        [DataMember(IsRequired = false)]
        public string Description
        {
            get { return description; }
            set { description = value; }
        }
    }


    [DebuggerStepThrough]
    [DataContract(Namespace = SC.Namespace)]
    public class Operation
    {
        private Guid id;

        [DataMember(IsRequired = false)]
        public Guid ID
        {
            get { return id; }
            set { id = value; }
        }
        private string name;

        [DataMember(IsRequired = true)]
        public string Name
        {
            get { return name; }
            set { name = value; }
        }
        private string description;

        [DataMember(IsRequired = false)]
        public string Description
        {
            get { return description; }
            set { description = value; }
        }
        private List<OperationVersion> versions;

        [DataMember(IsRequired = false)]
        public List<OperationVersion> Versions
        {
            get { return versions; }
            set { versions = value; }
        }
        private Policy policy;

        [DataMember(IsRequired = false)]
        public Policy Policy
        {
            get { return policy; }
            set { policy = value; }
        }

        private EndpointList endpointList;

        [DataMember(IsRequired = false)]
        public EndpointList EndpointList
        {
            get { return endpointList; }
            set { endpointList = value; }
        }

    }


    [DebuggerStepThrough]
    [DataContract(Namespace = SC.Namespace)]
    public class OperationVersionList
    {
        List<OperationVersionListElement> operationVersions;

        [DataMember(IsRequired = false)]
        public List<OperationVersionListElement> OperationVersions
        {
            get { return operationVersions; }
            set { operationVersions = value; }
        }
    }

    [DebuggerStepThrough]
    [DataContract(Namespace = SC.Namespace)]
    public class OperationVersionListElement
    {
        Guid id;

        [DataMember(IsRequired = true)]
        public Guid ID
        {
            get { return id; }
            set { id = value; }
        }

        String description;

        [DataMember(IsRequired = false)]
        public String Description
        {
            get { return description; }
            set { description = value; }
        }

        String operationName;

        [DataMember(IsRequired = true)]
        public String OperationName
        {
            get { return operationName; }
            set { operationName = value; }
        }

        VersionNumber version;

        [DataMember(IsRequired = true)]
        public VersionNumber Version
        {
            get { return version; }
            set { version = value; }
        }


    }


    [DebuggerStepThrough]
    [DataContract(Namespace = SC.Namespace)]
    public class OperationVersion
    {
        Guid id;

        [DataMember(IsRequired = false)]
        public Guid ID
        {
            get { return id; }
            set { id = value; }
        }

        String description;

        [DataMember(IsRequired = false)]
        public String Description
        {
            get { return description; }
            set { description = value; }
        }

        Guid operationID;

        [DataMember(IsRequired = false)]
        public Guid OperationID
        {
            get { return operationID; }
            set { operationID = value; }
        }

        String operationName;

        [DataMember(IsRequired = false)]
        public String OperationName
        {
            get { return operationName; }
            set { operationName = value; }
        }

        VersionNumber version;

        [DataMember(IsRequired = true)]
        public VersionNumber Version
        {
            get { return version; }
            set { version = value; }
        }

        [DataMember(IsRequired = false)]
        private List<MessagePart> requestMsg;

        public List<MessagePart> RequestMsg
        {
            get { return requestMsg; }
            set { requestMsg = value; }
        }

        [DataMember(IsRequired = false)]
        private List<MessagePart> responseMsg;

        public List<MessagePart> ResponseMsg
        {
            get { return responseMsg; }
            set { responseMsg = value; }
        }

        [DataMember(IsRequired = false)]
        private List<SoapFault> soapFaults;

        public List<SoapFault> SoapFaults
        {
            get { return soapFaults; }
            set { soapFaults = value; }
        }

        private XmlElement autoResponse;

        [DataMember(IsRequired = false)]
        public XmlElement AutoResponse
        {
            get { return autoResponse; }
            set { autoResponse = value; }
        }
        private bool isActive;

        [DataMember(IsRequired = true)]
        public bool IsActive
        {
            get { return isActive; }
            set { isActive = value; }
        }
        private bool isPublic;

        [DataMember(IsRequired = true)]
        public bool IsPublic
        {
            get { return isPublic; }
            set { isPublic = value; }
        }
        private bool isTestable;

        [DataMember(IsRequired = true)]
        public bool IsTestable
        {
            get { return isTestable; }
            set { isTestable = value; }
        }
        private XmlElement requestTransformXSLT;

        [DataMember(IsRequired = false)]
        public XmlElement RequestTransformXSLT
        {
            get { return requestTransformXSLT; }
            set { requestTransformXSLT = value; }
        }
        private XmlElement responseTransformXSLT;

        [DataMember(IsRequired = false)]
        public XmlElement ResponseTransformXSLT
        {
            get { return responseTransformXSLT; }
            set { responseTransformXSLT = value; }
        }
        private Channel channel;

        [DataMember(IsRequired = false)]
        public Channel Channel
        {
            get { return channel; }
            set { channel = value; }
        }
        private XmlElement moniker;

        [DataMember(IsRequired = false)]
        public XmlElement Moniker
        {
            get { return moniker; }
            set { moniker = value; }
        }
    }


    [DebuggerStepThrough]
    [DataContract(Namespace = SC.Namespace)]
    public class MSEBindingList
    {
        List<MSEBindingListElement> bindings;

        [DataMember(IsRequired = false)]
        public List<MSEBindingListElement> MSEBindings
        {
            get { return bindings; }
            set { bindings = value; }
        }
    }

    [DebuggerStepThrough]
    [DataContract(Namespace = SC.Namespace)]
    public class MSEBindingListElement
    {
        Guid id;

        [DataMember(IsRequired = true)]
        public Guid ID
        {
            get { return id; }
            set { id = value; }
        }
        string name;

        [DataMember(IsRequired = true)]
        public string Name
        {
            get { return name; }
            set { name = value; }
        }
        string description;

        [DataMember(IsRequired = false)]
        public string Description
        {
            get { return description; }
            set { description = value; }
        }
    }

    [DebuggerStepThrough]
    [DataContract(Namespace = SC.Namespace)]
    public class MSEBinding
    {
        Guid id;

        [DataMember(IsRequired = false)]
        public Guid ID
        {
            get { return id; }
            set { id = value; }
        }
        string name;

        [DataMember(IsRequired = true)]
        public string Name
        {
            get { return name; }
            set { name = value; }
        }
        XmlElement bindingConfig;

        [DataMember(IsRequired = true)]
        public XmlElement BindingConfig
        {
            get { return this.bindingConfig; }
            set { this.bindingConfig = value; }
        }
        string description;

        [DataMember(IsRequired = false)]
        public string Description
        {
            get { return description; }
            set { description = value; }
        }
    }

    [DebuggerStepThrough]
    [DataContract(Namespace = SC.Namespace)]
    public class ChannelList
    {
        List<ChannelListElement> channels;

        [DataMember(IsRequired = false)]
        public List<ChannelListElement> Channels
        {
            get { return channels; }
            set { channels = value; }
        }
    }

    [DebuggerStepThrough]
    [DataContract(Namespace = SC.Namespace)]
    public class ChannelListElement
    {
        Guid id;

        [DataMember(IsRequired = true)]
        public Guid ID
        {
            get { return id; }
            set { id = value; }
        }
        string name;

        [DataMember(IsRequired = true)]
        public string Name
        {
            get { return name; }
            set { name = value; }
        }
        string description;

        [DataMember(IsRequired = false)]
        public string Description
        {
            get { return description; }
            set { description = value; }
        }
    }

    [DebuggerStepThrough]
    [DataContract(Namespace = SC.Namespace)]
    public class Channel
    {
        private Guid id;

        [DataMember(IsRequired = false)]
        public Guid ID
        {
            get { return id; }
            set { id = value; }
        }
        private XmlElement monikerSchema;

        [DataMember(IsRequired = true)]
        public XmlElement MonikerSchema
        {
            get { return monikerSchema; }
            set { monikerSchema = value; }
        }
        private string name;

        [DataMember(IsRequired = true)]
        public string Name
        {
            get { return name; }
            set { name = value; }
        }
        private string description;

        [DataMember(IsRequired = false)]
        public string Description
        {
            get { return description; }
            set { description = value; }
        }
        private MSEBinding binding;

        [DataMember(IsRequired = true)]
        public MSEBinding Binding
        {
            get { return binding; }
            set { binding = value; }
        }
        private string monikerEditorAssemblyName;

        [DataMember(IsRequired = false)]
        public string MonikerEditorAssemblyName
        {
            get { return monikerEditorAssemblyName; }
            set { monikerEditorAssemblyName = value; }
        }
        private string monikerEditorTypeName;

        [DataMember(IsRequired = false)]
        public string MonikerEditorTypeName
        {
            get { return monikerEditorTypeName; }
            set { monikerEditorTypeName = value; }
        }

        private Policy[] policies;

        [DataMember(IsRequired = false)]
        public Policy[] Policies
        {
            get { return policies; }
            set { policies = value; }
        }
    }

    [DebuggerStepThrough]
    [DataContract(Namespace = SC.Namespace)]
    public class PolicyList
    {
        List<PolicyListElement> policies;

        [DataMember(IsRequired = false)]
        public List<PolicyListElement> Policies
        {
            get { return policies; }
            set { policies = value; }
        }
    }

    [DebuggerStepThrough]
    [DataContract(Namespace = SC.Namespace)]
    public class PolicyListElement
    {
        Guid id;

        [DataMember(IsRequired = true)]
        public Guid ID
        {
            get { return id; }
            set { id = value; }
        }
        string name;

        [DataMember(IsRequired = true)]
        public string Name
        {
            get { return name; }
            set { name = value; }
        }
        string description;

        [DataMember(IsRequired = false)]
        public string Description
        {
            get { return description; }
            set { description = value; }
        }
    }

    [DebuggerStepThrough]
    [DataContract(Namespace = SC.Namespace)]
    public class Policy
    {
        private Guid id;

        [DataMember(IsRequired = false)]
        public Guid ID
        {
            get { return id; }
            set { id = value; }
        }
        private string name;

        [DataMember(IsRequired = true)]
        public string Name
        {
            get { return name; }
            set { name = value; }
        }
        private string description;

        [DataMember(IsRequired = false)]
        public string Description
        {
            get { return description; }
            set { description = value; }
        }
        private XmlElement wsPolicy;

        [DataMember(IsRequired = true)]
        public XmlElement WSPolicy
        {
            get { return wsPolicy; }
            set { wsPolicy = value; }
        }
    }

    [DebuggerStepThrough]
    [DataContract(Namespace = SC.Namespace)]
    public class SchemaList
    {
        List<SchemaListElement> schemas;

        [DataMember(IsRequired = false)]
        public List<SchemaListElement> Schemas
        {
            get { return schemas; }
            set { schemas = value; }
        }
    }

    [DebuggerStepThrough]
    [DataContract(Namespace = SC.Namespace)]
    public class SchemaListElement
    {
        Guid id;

        [DataMember(IsRequired = true)]
        public Guid ID
        {
            get { return id; }
            set { id = value; }
        }
        string name;

        [DataMember(IsRequired = true)]
        public string Name
        {
            get { return name; }
            set { name = value; }
        }
        string description;

        [DataMember(IsRequired = false)]
        public string Description
        {
            get { return description; }
            set { description = value; }
        }
    }

    [DebuggerStepThrough]
    [DataContract(Namespace = SC.Namespace)]
    public class Schema
    {

        private Guid id;

        private string description;

        private string preferredPrefix;

        private string namespaceURI;

        private XmlElement xsd;

        [DataMember(IsRequired = false)]
        public Guid ID
        {
            get
            {
                return this.id;
            }
            set
            {
                this.id = value;
            }
        }

        [DataMember(IsRequired = false)]
        public string Description
        {
            get
            {
                return this.description;
            }
            set
            {
                this.description = value;
            }
        }

        [DataMember(IsRequired = false)]
        public string PreferredPrefix
        {
            get
            {
                return this.preferredPrefix;
            }
            set
            {
                this.preferredPrefix = value;
            }
        }

        [DataMember(IsRequired = true)]
        public string NamespaceURI
        {
            get
            {
                return this.namespaceURI;
            }
            set
            {
                this.namespaceURI = value;
            }
        }

        [DataMember(IsRequired = true)]
        public XmlElement XSD
        {
            get
            {
                return this.xsd;
            }
            set
            {
                this.xsd = value;
            }
        }
    }

    [DebuggerStepThrough]
    [DataContract(Namespace = SC.Namespace)]
    public class PropertyList
    {
        List<PropertyListElement> properties;

        [DataMember(IsRequired = false)]
        public List<PropertyListElement> Properties
        {
            get { return properties; }
            set { properties = value; }
        }
    }

    [DebuggerStepThrough]
    [DataContract(Namespace = SC.Namespace)]
    public class PropertyListElement
    {
        Guid id;

        [DataMember(IsRequired = true)]
        public Guid ID
        {
            get { return id; }
            set { id = value; }
        }
        string name;

        [DataMember(IsRequired = true)]
        public string Name
        {
            get { return name; }
            set { name = value; }
        }
        string description;

        [DataMember(IsRequired = false)]
        public string Description
        {
            get { return description; }
            set { description = value; }
        }
    }

    [DebuggerStepThrough]
    [DataContract(Namespace = SC.Namespace)]
    public class Property
    {
        Guid id;

        [DataMember(IsRequired = false)]
        public Guid ID
        {
            get { return id; }
            set { id = value; }
        }
        string name;

        [DataMember(IsRequired = true)]
        public string Name
        {
            get { return name; }
            set { name = value; }
        }
        XmlElement value;

        [DataMember(IsRequired = true)]
        public XmlElement Value
        {
            get { return this.value; }
            set { this.value = value; }
        }
        string description;

        [DataMember(IsRequired = false)]
        public string Description
        {
            get { return description; }
            set { description = value; }
        }
    }

    [DebuggerStepThrough]
    [DataContract(Namespace = SC.Namespace)]
    public class MessagePart
    {
        private string namespaceURI;

        [DataMember(IsRequired = true)]
        public string NamespaceURI
        {
            get { return namespaceURI; }
            set { namespaceURI = value; }
        }
        private string elementName;

        [DataMember(IsRequired = true)]
        public string ElementName
        {
            get { return elementName; }
            set { elementName = value; }
        }
    }

    [DebuggerStepThrough]
    [DataContract(Namespace = SC.Namespace)]
    public class SoapFault
    {
        Guid id;

        [DataMember(IsRequired = false)]
        public Guid ID
        {
            get { return id; }
            set { id = value; }
        }
        private string namespaceURI;

        [DataMember(IsRequired = true)]
        public string NamespaceURI
        {
            get { return namespaceURI; }
            set { namespaceURI = value; }
        }
        private string name;

        [DataMember(IsRequired = true)]
        public string Name
        {
            get { return name; }
            set { name = value; }
        }

        private string elementName;

        [DataMember(IsRequired = true)]
        public string ElementName
        {
            get { return elementName; }
            set { elementName = value; }
        }

        private string action;

        [DataMember(IsRequired = false)]
        public string Action
        {
            get { return action; }
            set { action = value; }
        }

        private System.Net.Security.ProtectionLevel protectionLevel;

        [DataMember(IsRequired = false)]
        public System.Net.Security.ProtectionLevel ProtectionLevel
        {
            get { return protectionLevel; }
            set { protectionLevel = value; }
        }
    }

    [DebuggerStepThrough]
    [DataContract(Namespace = SC.Namespace)]
    public class VersionNumber
    {
        private string major;

        [DataMember(IsRequired = true)]
        public string Major
        {
            get { return major; }
            set { major = value; }
        }
        private string minor;

        [DataMember(IsRequired = true)]
        public string Minor
        {
            get { return minor; }
            set { minor = value; }
        }
        private string build;

        [DataMember(IsRequired = true)]
        public string Build
        {
            get { return build; }
            set { build = value; }
        }
        private string qfe;

        [DataMember(IsRequired = true)]
        public string Qfe
        {
            get { return qfe; }
            set { qfe = value; }
        }
    }
    [DebuggerStepThrough]
    [DataContract(Namespace = SC.Namespace)]
    public class OperationGroupList
    {
        List<OperationGroupListElement> operationGroups;

        [DataMember(IsRequired = false)]
        public List<OperationGroupListElement> OperationGroups
        {
            get { return operationGroups; }
            set { operationGroups = value; }
        }
    }

    [DebuggerStepThrough]
    [DataContract(Namespace = SC.Namespace)]
    public class OperationGroupListElement
    {
        Guid id;

        [DataMember(IsRequired = true)]
        public Guid ID
        {
            get { return id; }
            set { id = value; }
        }
        string name;

        [DataMember(IsRequired = true)]
        public string Name
        {
            get { return name; }
            set { name = value; }
        }
        string description;

        [DataMember(IsRequired = false)]
        public string Description
        {
            get { return description; }
            set { description = value; }
        }
    }

    [DebuggerStepThrough]
    [DataContract(Namespace = SC.Namespace)]
    public class OperationGroup
    {
        Guid id;

        [DataMember(IsRequired = false)]
        public Guid ID
        {
            get { return id; }
            set { id = value; }
        }
        string name;

        [DataMember(IsRequired = true)]
        public string Name
        {
            get { return name; }
            set { name = value; }
        }
        List<OperationListElement> operations;

        [DataMember(IsRequired = false)]
        public List<OperationListElement> Operations
        {
            get { return operations; }
            set { operations = value; }
        }
        string description;

        [DataMember(IsRequired = false)]
        public string Description
        {
            get { return description; }
            set { description = value; }
        }
    }

    [DebuggerStepThrough]
    [DataContract(Namespace = SC.Namespace)]
    public class EndpointAssociatedUddi
    {
        Guid uddiAssociationID;
        [DataMember(IsRequired = true)]
        public Guid UddiAssociationID
        {
            get { return uddiAssociationID; }
            set { uddiAssociationID = value; }
        }

        Guid runtimeServerID;
        [DataMember(IsRequired = true)]
        public Guid RuntimeServerID
        {
            get { return runtimeServerID; }
            set { runtimeServerID = value; }
        }

        Guid endpointID;
        [DataMember(IsRequired = true)]
        public Guid EndpointID
        {
            get { return endpointID; }
            set { endpointID = value; }
        }

        string serviceKey;
        [DataMember(IsRequired = true)]
        public string ServiceKey
        {
            get { return serviceKey; }
            set { serviceKey = value; }
        }

        string tModelKey;
        [DataMember(IsRequired = true)]
        public string TModelKey
        {
            get { return tModelKey; }
            set { tModelKey = value; }
        }

        string bindingKey;
        [DataMember(IsRequired = true)]
        public string BindingKey
        {
            get { return bindingKey; }
            set { bindingKey = value; }
        }

        string wsdlUrl;
        [DataMember(IsRequired = true)]
        public string WsdlUrl
        {
            get { return wsdlUrl; }
            set { wsdlUrl = value; }
        }

        string bindingUrl;
        [DataMember(IsRequired = true)]
        public string BindingUrl
        {
            get { return bindingUrl; }
            set { bindingUrl = value; }
        }
    }

}